Nested Queries পরিচালনা

Database Tutorials - আরাঙ্গো (ArangoDB) - Joins এবং Relational Queries
558

Nested Queries ArangoDB তে এমন কোয়েরি যেখানে একটি কোয়েরির ভেতরে আরেকটি কোয়েরি ব্যবহার করা হয়। এটি জটিল ডেটা বিশ্লেষণ এবং সম্পর্কিত ডেটার কার্যকর অনুসন্ধানের জন্য ব্যবহৃত হয়। AQL এ Nested Queries ব্যবহার করে সহজে সাব-কোয়েরি তৈরি করা সম্ভব।


Nested Query এর মূল ধারণা

  • একটি কোয়েরির ভেতরে অন্য একটি কোয়েরি ব্যবহার করে ডেটা সংগ্রহ করা।
  • সাব-কোয়েরির ফলাফলকে মেইন কোয়েরিতে ডেটা হিসেবে ব্যবহার করা হয়।
  • এটি JOIN, ফিল্টারিং, এবং সাব-গ্রুপিং অপারেশন পরিচালনার জন্য কার্যকর।

Nested Query উদাহরণ

১. সাব-কোয়েরি ব্যবহার করে ফিল্টারিং

FOR doc IN employees
  FILTER doc.salary > (
    FOR avgSalary IN employees
      COLLECT AGGREGATE avgSalary = AVG(avgSalary.salary)
      RETURN avgSalary
  )[0]
  RETURN doc

বর্ণনা:

  • সাব-কোয়েরি employees টেবিলের গড় বেতন (AVG) বের করে।
  • মেইন কোয়েরি সেই সকল এমপ্লয়িদের ডেটা ফেরত দেয়, যাদের বেতন গড় বেতনের বেশি।

২. সাব-কোয়েরি দিয়ে গ্রুপিং এবং গণনা

FOR department IN departments
  LET employeeCount = (
    FOR emp IN employees
      FILTER emp.departmentId == department._key
      COLLECT WITH COUNT INTO count
      RETURN count
  )[0]
  RETURN { department: department.name, totalEmployees: employeeCount }

বর্ণনা:

  • সাব-কোয়েরি প্রতিটি ডিপার্টমেন্টের জন্য কর্মচারীদের সংখ্যা গণনা করে।
  • মেইন কোয়েরি ডিপার্টমেন্টের নাম এবং কর্মচারীর সংখ্যা রিটার্ন করে।

৩. Edge এবং Vertex এর Nested Query

FOR v IN vertices
  LET relatedEdges = (
    FOR e IN edges
      FILTER e._from == v._id
      RETURN e
  )
  RETURN { vertex: v, edges: relatedEdges }

বর্ণনা:

  • সাব-কোয়েরি একটি Vertex এর সাথে সম্পর্কিত সকল Edge সংগ্রহ করে।
  • মেইন কোয়েরি Vertex এবং তার সম্পর্কিত Edge রিটার্ন করে।

৪. সাব-কোয়েরি থেকে একাধিক মান সংগ্রহ

FOR product IN products
  LET totalSales = (
    FOR order IN orders
      FILTER order.productId == product._key
      COLLECT AGGREGATE total = SUM(order.quantity)
      RETURN total
  )[0]
  RETURN { productName: product.name, totalSales: totalSales }

বর্ণনা:

  • সাব-কোয়েরি একটি প্রোডাক্টের জন্য সব অর্ডারের পরিমাণ যোগ করে।
  • মেইন কোয়েরি প্রোডাক্টের নাম এবং মোট বিক্রয় রিটার্ন করে।

Nested Query ব্যবহারের ক্ষেত্রে বিশেষ নির্দেশনা

  • পারফরম্যান্স: Nested Queries জটিল হলে কোয়েরি সময় বেশি লাগতে পারে।
  • ইনডেক্সিং: Nested Query অপ্টিমাইজ করতে রিলেভেন্ট ফিল্ডে ইনডেক্স ব্যবহার করুন।
  • সাব-কোয়েরি সীমাবদ্ধতা: সাব-কোয়েরি সরাসরি পুরো টেবিলে কাজ করে, তাই সাব-কোয়েরির ফলাফল ছোট রাখতে ফিল্টার ব্যবহার করুন।

Nested Query এর ব্যবহার ক্ষেত্র

  • জটিল সম্পর্ক বিশ্লেষণ।
  • গ্রুপিং এবং সাব-গ্রুপিং।
  • একাধিক স্তরের ডেটা ফিল্টারিং।
  • Edge এবং Vertex সম্পর্ক পরিচালনা।

সারাংশ

ArangoDB তে Nested Query ব্যবহার করে জটিল ডেটা বিশ্লেষণ এবং সম্পর্কযুক্ত ডেটা মডেল পরিচালনা সহজ হয়। সাব-কোয়েরি ডেটা ফিল্টারিং, গ্রুপিং, এবং গণনার জন্য কার্যকর হাতিয়ার। ডেটার গভীর বিশ্লেষণ প্রয়োজন হলে Nested Queries একটি অপরিহার্য টুল।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...